System, method, and computer program for rating network transmissions based on user requested data

ABSTRACT

A system, method, and computer program product are provided for rating network transmissions based on user requested data. In use, a transmission of data over a network is identified, where the data includes user requested data and additional data. Additionally, a size of the user requested data is determined. Furthermore, the transmission of the user requested data is rated based on the size of the user requested data. The transmission of additional data may be charged to third parties such as advertisers.

FIELD OF THE INVENTION

The present invention relates to network transmissions of data, and moreparticularly to rating network transmissions of data.

BACKGROUND

Generally, transmissions of data over a network are rated for billingpurposes. For example, network subscribers are charged for the rategiven to the data transmission. In some situations, networktransmissions are rated based on the access method used to transmit thedata [e.g. digital subscriber lines (xDSL), evolution-data optimized(EVDO)] and/or a speed of the connection used to transmit the data.However, rating based on a volume of the data included in the networktransmission is becoming more predominant.

Unfortunately, techniques for rating network transmissions based onvolume have exhibited various limitations. Just by way of example,volume based rating has typically resulted in subscribers being chargedfor data they have not specifically requested, particularly whereadditional data (e.g. advertisements, etc.) is automatically transmittedalong with the user requested data. There is thus a need for addressingthese and/or other issues associated with the prior art.

SUMMARY

A system, method, and computer program product are provided for ratingnetwork transmissions based on user requested data. In use, atransmission of data over a network is identified, where the dataincludes user requested data and additional data. Additionally, a sizeof the user requested data is determined. Furthermore, the transmissionof the user requested data is rated based on the size of the userrequested data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a network architecture, in accordance with onepossible embodiment.

FIG. 2 illustrates an exemplary system, in accordance with oneembodiment.

FIG. 3 illustrates a method for rating network transmissions based onuser requested data, in accordance with an embodiment.

FIG. 4 illustrates a method for separately rating user requested dataand additional data included therewith in a network transmission, inaccordance with another embodiment.

FIG. 5 illustrates a system for rating network transmissions based onuser requested data, in accordance with yet another embodiment.

DETAILED DESCRIPTION

FIG. 1 illustrates a network architecture 100, in accordance with onepossible embodiment. As shown, at least one network 102 is provided. Inthe context of the present network architecture 100, the network 102 maytake any form including, but not limited to a telecommunicationsnetwork, a local area network (LAN), a wireless network, a wide areanetwork (WAN) such as the Internet, peer-to-peer network, cable network,etc. While only one network is shown, it should be understood that twoor more similar or different networks 102 may be provided.

Coupled to the network 102 is a plurality of devices. For example, aserver computer 104 and an end user computer 106 may be coupled to thenetwork 102 for communication purposes. Such end user computer 106 mayinclude a desktop computer, lap-top computer, and/or any other type oflogic. Still yet, various other devices may be coupled to the network102 including a personal digital assistant (PDA) device 108, a mobilephone device 110, a television 112, etc.

FIG. 2 illustrates an exemplary system 200, in accordance with oneembodiment. As an option, the system 200 may be implemented in thecontext of any of the devices of the network architecture 100 of FIG. 1.Of course, the system 200 may be implemented in any desired environment.

As shown, a system 200 is provided including at least one centralprocessor 201 which is connected to a communication bus 202. The system200 also includes main memory 204 [e.g. random access memory (RAM),etc.]. The system 200 also includes a graphics processor 206 and adisplay 208.

The system 200 may also include a secondary storage 210. The secondarystorage 210 includes, for example, a hard disk drive and/or a removablestorage drive, representing a floppy disk drive, a magnetic tape drive,a compact disk drive, etc. The removable storage drive reads from and/orwrites to a removable storage unit in a well known manner.

Computer programs, or computer control logic algorithms, may be storedin the main memory 204, the secondary storage 210, and/or any othermemory, for that matter. Such computer programs, when executed, enablethe system 200 to perform various functions (to be set forth below, forexample). Memory 204, storage 210 and/or any other storage are possibleexamples of tangible computer-readable media.

FIG. 3 illustrates a method 300 for rating network transmissions basedon user requested data, in accordance with an embodiment. As an option,the method 300 may be carried out in the context of the details of FIGS.1 and/or 2. Of course, however, the method 300 may be carried out in anydesired environment. Further, the aforementioned definitions may equallyapply to the description below.

As shown in operation 302, a transmission of data over a network isidentified, where the data includes user requested data and additionaldata. In the context of the present embodiment, the data includes anydata capable of being transmitted over the network, which includes bothuser requested data and additional data.

In one embodiment, the user requested data may include a component ofdata requested by a user via a browser of a device of the user (e.g.where the user is a subscriber to the network). Just by way of example,the user requested data may include a web page, video, audio, and/or anyother data (e.g. file, code, etc.) which may be requested by a user.Optionally, the user requested data may be transmitted by a source (e.g.server, etc.) from which the user requested the user requested data.

In another embodiment, the additional data may include a component ofdata not necessarily requested by the user. For example, the data notrequested by the user may include an advertisement, a tracking cookie, atracking uniform resource locator (URL), a toolbar, and/or any otherdata (e.g. file, code, etc.) which is transmitted with the userrequested data (e.g. but not necessarily requested by the user). As anoption, the additional data may be transmitted by a second sourceseparate from the source (e.g. server, etc.) from which the userrequested the user requested data, such as from an advertiser.

It should be noted that the transmission of the data may include anycommunication of the data over the network. For example, thetransmission of the data may include downloading the data, streaming thedata, uploading the data, emailing the data, etc. Thus, the data mayoptionally be transmitted in response to a user request to receive theuser requested data or a user request to send the user requested data.

To this end, the transmission of the data may be identified in responseto initiation of the transmission resulting from a request by the userfor the user requested data. For example, the transmission of the datamay be identified by a network service provider receiving the data fortransmitting the same. In this way, the network service provider mayintercept the transmission of the data from a source location to adestination location.

Additionally, as shown in operation 304, a size of the user requesteddata is determined. In the context of the present description, a sizeincludes a magnitude of data (e.g. in kilobytes, megabytes, etc.). Inone embodiment, the size of the user requested data may be determined byanalyzing the data. In another embodiment, the size of the userrequested data may be determined by analyzing content returned from thesource from which the user requested data has been requested, where suchcontent is to be forwarded to the device of the user.

Furthermore, as shown in operation 306, the transmission of the userrequested data is rated based on the size of the user requested data.With respect to the present description, the rating includes determininga rate for the transmission of the user requested data. Such rate may bea monetary rate or any other value indicative of a rate of thetransmission of the user requested data.

It should be noted that the rate may be determined utilizing any desiredalgorithm that takes into account the size of the user requested data.For example, in one embodiment, the rate may be higher for userrequested data that is of a first size, and may be lower for userrequested data that is of a second size less than the first size. Inanother embodiment, the rate may be determined based on a tiered ratingsystem, where tiers of different size ranges are associated withdifferent rates.

Accordingly, the user from which the user requested data was requestedmay be charged for the transmission, utilizing the rating of thetransmission of the user requested data. In one embodiment, the ratedetermined for the transmission of the user requested data may be billedto the user. For example, the network service provider may determine therate and charge the user using the rate.

By rating the transmission of the user requested data/additional databased on the size of the user requested data, the rating may beexclusive of a size of the additional data included in the transmission.Thus, the rating may be exclusive of a size of data not necessarilyrequested by the user, such that the user may optionally only be chargedfor the data the user has requested. In this way, the user mayoptionally be charged only for the transfer of that component of datathat has been specifically requested by the user.

More illustrative information will now be set forth regarding variousoptional architectures and uses in which the foregoing method may or maynot be implemented, per the desires of the user. It should be stronglynoted that the following information is set forth for illustrativepurposes and should not be construed as limiting in any manner. Any ofthe following features may be optionally incorporated with or withoutthe exclusion of other features described.

FIG. 4 illustrates a method 400 for separately rating user requesteddata and additional data included therewith in a network transmission,in accordance with another embodiment. As an option, the method 400 maybe carried out in the context of the details of FIGS. 1-3. Of course,however, the method 400 may be carried out in any desired environment.Again, the aforementioned definitions may equally apply to thedescription below.

As shown in operation 402, a transmission of data over a network isreceived. With respect to the present embodiment, the data includes bothuser requested data and additional data which has not necessarily beenrequested by a user. For example, the data may include a web page, andthe additional data may include an advertisement inserted into the webpage.

In one embodiment, the transmission of data may be received by a networkservice provider. For example, the network service provider mayintercept the transmission for processing the same (e.g. for billingpurposes, etc.), prior to forwarding the transmission to the location towhich the transmission is destined.

Additionally, the user requested data included in the transmission isidentified. Note operation 404. In one embodiment, the user requesteddata may be identified in response to receipt of the user requested datafrom a source from which the user requested the user requested data. Forexample, the source may respond to the user request by transmitting theuser requested data to the user over the network.

As noted above, the network service provider may intercept thetransmission for processing the same. Thus, in another embodiment, theuser requested data may be identified by analyzing the transmission forthe user requested data. Further, a size of the user requested dataincluded in the transmission is identified, as shown in operation 406.

Still yet, as shown in operation 408, additional data included in thetransmission is identified. In one embodiment, the additional data maybe identified in response to receipt of the additional data from asecond source separate from the source from which the user requested theuser requested data. For example, the second source may provide theadditional data for appending the same to the user requested data.

However, as noted above, the network service provider may intercept thetransmission of the user requested data/additional data for processingthe same. Accordingly, in another embodiment, the additional data may beidentified by analyzing the transmission for the additional data. As anoption, the additional data is modified. Note operation 410. It shouldbe noted that the present operation is merely optional, and may includemodification of any portion of the additional data.

For example, the additional data may be modified using other additionaldata. In one embodiment, the other additional data may include dataprovided by the network service provider. In one embodiment, theadditional data may be modified by adding other additional data to theadditional data. For example, a wrapper may be added around hyperlinksincluded in the user requested data/additional data.

In another embodiment, the additional data may be removed from thetransmission. In yet another embodiment, the additional data may bereplaced with other additional data. For example, an advertisementincluded in the additional data may be replaced with anotheradvertisement.

Accordingly, in one embodiment, the other additional data may beselected (and appended to the user requested data) based on the size ofthe user requested data. The selection and appending may be performed inreal-time, as an option. To this end, the other additional data maybecome the additional data to the user requested data.

In particular, the size of the user requested data may be utilized todetermine a bandwidth consumed by transmission of the user requesteddata. In addition, a remaining bandwidth available from a maximumbandwidth capacity may be determined using the determined bandwidthconsumed by transmission of the user requested data. In this way, theadditional data may be selected based on a determination that theadditional data is of a size such that it consumes at most the remainingbandwidth available. For example, a provider for the additional data maybe selected based on bids or contracts entered in advance based on theremaining bandwidth available, such that the additional data consumes atmost the remaining bandwidth available, and a user segment or userprofile.

Just by way of example, the user requested data may be a simplehypertext markup language (HTML) page which uses a small bandwidth fortransmission of the same. Thus, an advertisement which uses a largerbandwidth (e.g. a rich-media advertisement) may be selected for beingtransmitted with the user requested data. This may allow use of themaximum bandwidth capacity when transmitting the user requested data andthe additional data together.

Thus, advertisers may select an advertisement to be appended to the userrequested data based on the content of the user requested data, aprofile of the user, and remaining bandwidth available with respect totransmission of the user requested data. Of course, it should be notedthat the selection of an advertisement based on the size of the userrequested data may optionally only be provided if the user opts toreceive advertisements selected in that manner (e.g. to ensure privacyand compliance with applicable regulations).

Moreover, a size of the additional data is determined, as shown inoperation 412. In addition, the transmission is rated based on the sizeof the user requested data, for charging the user. Note operation 414.In this way, the transmission, which includes both user requested dataand additional data not necessarily requested by the user, may only berated based on the size of the user requested data. As noted above, theuser may be charged (i.e. billed) according to the rating.

As also shown, transmission of the additional data is rated based on thesize of the additional data, for charging a third party. Note operation416. For example, an algorithm which takes into account the size of theadditional data may be utilized to determine a rate for the transmissionof the additional data with the user requested data. As noted above, therate determined for the transmission of the additional data may becharged to a third party (e.g. the advertiser or other provider of theadditional data), such that charging the user for the additional datamay be prevented, while still allowing collection of a fee fortransmission of the additional data.

FIG. 5 illustrates a system 500 for rating network transmissions basedon user requested data, in accordance with yet another embodiment. As anoption, the system 500 may be implemented in the context of the detailsof FIGS. 1-4. Of course, however, the system 500 may be implemented inany desired environment. Again, the aforementioned definitions mayequally apply to the description below.

As shown, a data source 502 and an additional data source 510 are incommunication with a user device 512 via a network service provider 504.When the user device 512 submits a request for data (hereinafter userrequested data) from the data source 502, the request is received by thenetwork service provider 504 and forwarded to the data source 502. Thedata source 502 receives the request, retrieves the user requested datafrom its data repository 503, and responds to the request by returningthe user requested data to the user device 512 via the network serviceprovider 504.

As shown, the user requested data is routed through a network bridge 506of the network service provider 504 (e.g. the Amdocs™ Mobile InternetBridge). Upon receipt of the user requested data from the data source502 (for being forwarded to the user device 512), the network bridge 506analyzes the user requested data and determines the size of the userrequested data. The network bridge 506 may then record the sizedetermined for the user requested data.

The network service provider 504 also receives additional data from anadditional data source 510 for appending the additional data to the userrequested data, such that the user requested data and the additionaldata may be transmitted to the user device 512 together. In oneembodiment, the network bridge 506 may receive the user requested dataand the additional data separately. In another embodiment, the networkbridge 506 may receive (i.e. from another component of the networkservice provider 504) the user requested data and the additional datatogether.

Further, upon receipt of the additional data, the network bridge 506 maymodify the additional data. For example, the network bridge 506 may addits own data to the additional data, for appending the same to the userrequested data. As another example, the network bridge 506 may replace aportion or all of the additional data with other additional data.

In one embodiment, the network bridge 506 may select an advertisementfor inclusion in the additional data (e.g. from the additional datasource 510) based on the size of the user requested data. Optionally,selecting the advertisement based on the size of the user requested datamay ensure that a bandwidth used by the user requested data and abandwidth used by the additional data is below or within a predeterminedamount below a maximum bandwidth capacity.

The network bridge 506 then sends the size to the billing system 508 ofthe network service provider 504. The billing system 508 rates thetransmission of the user requested data and additional data based on thesize of the user requested data. The billing system 508 may then usethis rating to bill the user of the user device 512 for the transmissionof the user requested data. In this way, billing the user for theadditional data appended to the user requested data may be avoided.

The network bridge 506 may then transmit the user requested data and theappended additional data to the user device 512. Where the user hassubscribed to a prepaid policy of the network service provider 504, thenetwork bridge 506 may wait for authorization from the billing system508 to transmit the user requested data and the appended additional datato the user device 512. Once authorization is received (i.e. the billingsystem 508 determines that there are sufficient funds in an account ofthe user to pay the rate determined for the transmission), the networkbridge 506 may transmit the user requested data and the appendedadditional data to the user device 512.

The network bridge 506 further determines a size of the additional dataand sends the size to the billing system 508 of the network serviceprovider 504. The billing system 508 then rates the transmission of theadditional data based on the size of the additional data and any otherparameters such as the segment of the user to whom the additional datawas transmitted. The billing system 508 may then use this rating to billthe additional data source 510 for the transmission of the additionaldata. In this way, while billing the user for the additional dataappended to the user requested data may be avoided, the network serviceprovider 504 may still collect a fee for the transmission of theadditional data (i.e. from the additional data source 510 in the presentembodiment).

While various embodiments have been described above, it should beunderstood that they have been presented by way of example only, and notlimitation. Thus, the breadth and scope of a preferred embodiment shouldnot be limited by any of the above-described exemplary embodiments, butshould be defined only in accordance with the following claims and theirequivalents.

What is claimed is:
 1. A computer-implemented method, comprising:intercepting at a network bridge a transmission including user requesteddata and a first advertisement sent from a first data source to a deviceof the user over a network; determining at the network bridge abandwidth consumed by the transmission of the user requested data;identifying a maximum bandwidth capacity for the network; determining aremaining available bandwidth by calculating the difference between themaximum bandwidth capacity for the network and the bandwidth consumed byonly the transmission of the user requested data and not the firstadvertisement; selecting at the network bridge and from a second datasource separate from the first data source a second advertisement, basedon a determination that: the second advertisement consumes a bandwidththat is within a predetermined amount below the determined remainingavailable bandwidth, the second advertisement is of a type that enablesuse of the maximum bandwidth capacity, and the user has opted to receiveadvertisements selected based on a size of the user requested data;removing the first advertisement from the transmission and appending thesecond advertisement to the user requested data within the transmission;sending the size of the user requested data from the network bridge to abilling system; determining at the billing system a rate for thetransmission of the user requested data based on the size of the userrequested data; determining at the billing system whether an account ofthe user contains sufficient funds to pay the rate for the transmission;sending authorization from the billing system to the network bridge whenthe billing system determines that the account of the user containssufficient funds to pay the rate; and transmitting the user requesteddata and the second advertisement from the network bridge to the deviceof the user, in response to the authorization.
 2. A system, comprising:a network bridge including at least one hardware processor configuredfor: intercepting a transmission including user requested data and afirst advertisement sent from a first data source to a device of theuser over a network; determining a bandwidth consumed by thetransmission of the user requested data; identifying a maximum bandwidthcapacity for the network; determining a remaining available bandwidth bycalculating the difference between the maximum bandwidth capacity forthe network and the bandwidth consumed by only the transmission of theuser requested data and not the first advertisement; selecting and froma second data source separate from the first data source a secondadvertisement, based on a determination that: the second advertisementconsumes a bandwidth that is within a predetermined amount below thedetermined remaining available bandwidth, the second advertisement is ofa type that enables use of the maximum bandwidth capacity, and the userhas opted to receive advertisements selected based on a size of the userrequested data; removing the first advertisement from the transmissionand appending the second advertisement to the user requested data withinthe transmission; sending the size of the user requested data to abilling system; and transmitting the user requested data and the secondadvertisement to the device of the user; and the billing systemincluding at least one hardware processor configured for: determining arate for the transmission of the user requested data based on the sizeof the user requested data; determining whether an account of the usercontains sufficient funds to pay the rate for the transmission; andsending authorization to the network bridge when the billing systemdetermines that the account of the user contains sufficient funds to paythe rate, wherein transmitting the user requested data and the secondadvertisement from the network bridge to the device of the user isperformed in response to the authorization.
 3. The system of claim 2,wherein the at least one hardware processor is coupled to a memory via abus.
 4. A computer program embodied on a non-transitory computerreadable medium, comprising: computer code for intercepting at a networkbridge a transmission including user requested data and a firstadvertisement sent from a first data source to a device of the user overa network; computer code for determining at the network bridge abandwidth consumed by the transmission of the user requested data;computer code for identifying a maximum bandwidth capacity for thenetwork; computer code for determining a remaining available bandwidthby calculating the difference between the maximum bandwidth capacity forthe network and the bandwidth consumed by only the transmission of theuser requested data and not the first advertisement; computer code forselecting at the network bridge and from a second data source separatefrom the first data source a second advertisement, based on adetermination that: the second advertisement consumes a bandwidth thatis within a predetermined amount below the determined remainingavailable bandwidth, the second advertisement is of a type that enablesuse of the maximum bandwidth capacity, and the user has opted to receiveadvertisements selected based on a size of the user requested data;computer code for removing the first advertisement from the transmissionand appending the second advertisement to the user requested data withinthe transmission; computer code for sending the size of the userrequested data from the network bridge to a billing system; computercode for determining at the billing system a rate for the transmissionof the user requested data based on the size of the user requested data;computer code for determining at the billing system whether an accountof the user contains sufficient funds to pay the rate for thetransmission; computer code for sending authorization from the billingsystem to the network bridge when the billing system determines that theaccount of the user contains sufficient funds to pay the rate; andcomputer code for transmitting the user requested data and the secondadvertisement from the network bridge to the device of the user, inresponse to the authorization.
 5. The computer program of claim 4,wherein the transmission includes a downloading of the data.
 6. Thecomputer program of claim 4, wherein the transmission includes anuploading of the data.
 7. The computer program of claim 4, wherein theuser requested data includes data requested by the user via a browser ofthe device of the user.
 8. The computer program of claim 4, wherein theuser requested data includes a web page.
 9. The computer program ofclaim 4, further comprising computer code for selecting at the networkbridge a tracking cookie for inclusion in the user requested data. 10.The computer program of claim 4, further comprising computer code forcharging the user from which the user requested data was requested forthe transmission, utilizing the rate for the transmission of the userrequested data.
 11. The computer program of claim 4, further comprisingcomputer code for rating the transmission of the second advertisementbased on the size of the second advertisement.
 12. The computer programof claim 11, further comprising computer code for charging the seconddata source, utilizing the rating of transmission of the secondadvertisement.
 13. The computer program of claim 4, wherein the secondadvertisement is selected based on contracts entered in advance forpurchasing the remaining bandwidth available, as well as a profile ofthe user.
 14. The computer program of claim 4, wherein the secondadvertisement is selected further based on a content of the userrequested data and a profile of the user.